function huadong(id){
	
	var obj=new Object();
	obj._e=$("#"+id);
	obj._ul=$("#"+id+" ul");
	obj._lis=new Array();
	obj._huakuai=document.createElement("div");
	obj._pre=document.createElement("a");
	obj._pre.id="_huadong_pre_a";
	obj._pre.href="javascript:void(0)";
	obj._next=document.createElement("a");
	obj._next.id="_huadong_next_a";
	obj._next.href="javascript:void(0)";
	obj._selDiv=document.createElement("DIV");
	obj._sel=document.createElement("SELECT");
	obj._size=0;//一行容纳几个
	obj._row=1;//行
	
	obj._ul_left;//ul相对于div的左偏移量
	
	//========================================
	
	//========================================
	$(obj._e).addClass("HUADONG");
	$(obj._huakuai).addClass("HUADONG_huakuai");
	$(obj._selDiv).addClass("HUADONG_selDiv");
	
	
	if(!$(obj._e)[0] || !obj._ul[0]){
		return;
	}
	
	$(obj._e).append(obj._selDiv);
	$(obj._selDiv).append(obj._sel);
	
	obj._ul_left=obj._ul.position().left;
	var ul_width=obj._ul.width();
	var ul_height=obj._ul.height();
	
	var lis=$("#"+id+" ul li");
	lis.each(function(index){
		this._index=index;
		$(this).addClass("item");
		obj._lis.push(this);
		var op=document.createElement("OPTION");
		op.value=index;
		op.title = $(this).attr("id");
		var text=$(this).children("a").text();
		op.innerHTML=text;
		$(obj._sel).append(op);
		$(this).mouseover(function(){
			_itemMouseOver(this);
		}).mouseout(function(){
			_itemMouseOut(this);
		}).click(function(){
			
		});
		//li 下面的a的方法抽取出来----临时解决方案
		var a=$(this).children("a")[0];
		if(a){
			this._aFun = a.onclick;
			//a.onclick="";//置空
			$(a).click(function(event){
				_itemChoose(index);
			});
		}
	});
	
	if(obj._lis.length==0){
		return;
	}
	
	$(obj._sel).change(function(){
		obj.to($(this).val());
		var selected = $(this).find("option:selected");
		checkJspForm(selected.attr("title"));
	});
	
	
	var itemWidth=lis.width();
	obj._size=parseInt(ul_width/itemWidth);//一行可容纳的li数量
	if(obj._size<obj._lis.length){
		for(var i=obj._size;i<obj._lis.length;i++){
			$(obj._lis[i]).hide();
		}
		$(obj._e).prepend(obj._pre);
		$(obj._e).append(obj._next);
	}
	
	$(obj._e).prepend(obj._huakuai);
	_go(0,true);
	
	$(obj._next).click(function(){
		var startIndex;
		if(obj._size*obj._row>=obj._lis.length){
			startIndex=0;
		}else{
			startIndex=obj._size*obj._row;
		}
		_itemsToggle(startIndex,obj._size);
	});
	
	$(obj._pre).click(function(){
		var startIndex;
		if(obj._row>1){
			startIndex=((obj._row-1)-1)*obj._size;
			
		}else if(obj._row==1){
			var lastSize=parseInt(obj._lis.length%obj._size);
			startIndex=obj._lis.length-(lastSize!=0?lastSize:obj._size);
			startIndex=(startIndex<0?0:startIndex);
		}
		_itemsToggle(startIndex,obj._size);
	});
	/**
	 * 鼠标到达
	 * @param item
	 */
	function _itemMouseOver(item){
		_go(item._index);
	}
	/**
	 * 鼠标离开
	 * @param item
	 */
	function _itemMouseOut(item){
		_go(obj._huakuai._index,true);
	}
	
	function _itemChoose(index){
		_go(index,true,true);
	}
	/**
	 * 菜单切换
	 * @param startIndex
	 * @param maxSize
	 */
	function _itemsToggle(startIndex,maxSize){
		if(startIndex<0 || maxSize<1){return;}
		for(var i=0;i<obj._lis.length;i++){
			if(i>=startIndex && i<startIndex+maxSize){
				$(obj._lis[i]).show("fast");
			}else{
				$(obj._lis[i]).hide("fast");
			}
			
		}
		_go(startIndex,true,true,3000);
	}
	/**
	 * 滑块复位或者去到指定位置
	 * choose，是否固定
	 * doway，是否执行滑块下面的方法
	 * timeOut ,延迟多久执行滑块下面的方法
	 */
	function _go(index,choose,doway,timeOut){
		
		var old=obj._huakuai._index;
		obj._row=parseInt(index/obj._size)+1;
		var huaikuai_left=(index-((obj._row-1)*obj._size))*itemWidth+obj._ul_left;
		$(obj._huakuai).stop();
		if(old!=index){//此次动作为滚动到新位置，需要恢复老位置的css
			$(obj._lis[old]).removeClass("itemChoosed");
			$(obj._lis[old]).addClass("item");
		}
		if(choose){//选中
			try{
				clearTimeout(_go._t);
				//alert("清除上一个方法");
			}catch(e){}
			obj._huakuai._index=index;
			$(obj._sel).val(index);
			$(obj._lis[index]).removeClass("item");
			$(obj._lis[index]).addClass("itemChoosed");
		}
		
		$(obj._huakuai).animate({//动画效果
			"left":huaikuai_left+"px"
		},200,function(){//
			if(doway){
				
				if(typeof timeOut!="number"){
					timeOut=0;
				}
				_go._t=setTimeout(function(){
					
					if(obj._huakuai._index!=index){return;}
					//var a=$(obj._lis[index]).children("a")[0];
					//if(a && a.onclick){
						//a.onclick();
					//}
					
					if(obj._lis[index]._aFun){
						obj._lis[index]._aFun();
					}
				},timeOut);
			}
		});
		
		
		
	}
	
	//================================================api
	/**
	 * 去到哪个item
	 */
	obj.to=function(index){
		if(index<0 || index>obj._lis.length){return;}
		var startIndex=index-parseInt(index%obj._size);
		for(var i=0;i<obj._lis.length;i++){
			if(i>=startIndex && i<startIndex+obj._size){
				$(obj._lis[i]).show("fast");
			}else{
				$(obj._lis[i]).hide("fast");
			}
			
		}
		_go(index,true,true);
	};
	
	return obj;
}